package io;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;

/**
 * 使用对象输入流进行对象序列化.
 */
public class OISDemo {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        FileInputStream fis = new FileInputStream("person.obj");
        ObjectInputStream ois = new ObjectInputStream(fis);
        /** Object readObject() 反序列化 */
        /*
            Object readObject()
            对象输入流提供的反序列化方法，将读取的字节还原为java对象

            如果读取的字节不是通过对象输出流序列化对象的一组字节时会抛出异常.
            ClassNotFoundException
         */
        Person p = (Person)ois.readObject();
        System.out.println(p);
        ois.close();
        /*
            被transient关键词修饰的属性序列化时会被忽略.
         */

        /*
        InvalidClassException：无效  执行后，类名改变，则出异常
         */










    }
}
